package cn.kais.drawer;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * 单元工具类  之后移除
 */
public class UnitTools {

//    /**
//     * rgba 字符串 转 Color
//     */
//    public static Color toColor(String str) {
//        String[] parts = str.replaceFirst("^rgba\\(", "").replaceFirst("\\)$", "").split(",");
//        float[] rgba = new float[4];  // float 时 颜色值 在0~1范围内
//        for (int i = 0; i < parts.length; i++) {
//            rgba[i] = Float.parseFloat(parts[i].trim());
//        }
//        return new Color(rgba[0] / 255, rgba[1] / 255, rgba[2] / 255, rgba[3]);
//    }

//    /**
//     * @param name   字体名称
//     * @param size   字体大小
//     * @param bold   粗体
//     * @param italic 斜体
//     */
//    public static Font toFont(String name, int size, boolean bold, boolean italic) {
//        Font font = new Font(name, Font.PLAIN, size);
//        if (bold && italic) {
//            font = new Font(name, Font.BOLD | Font.ITALIC, size);
//        } else {
//            if (bold) {
//                font = new Font(name, Font.BOLD, size);
//            }
//            if (italic) {
//                font = new Font(name, Font.ITALIC, size);
//            }
//        }
//        return font;
//    }



    /**
     * 取最大圆角
     */
    public static int onGetMaxRadius(int a, int b, int c, int d) {
        int m1 = Math.max(a, b);
        int m2 = Math.max(c, d);
        return Math.max(m1, m2);
    }

    /**
     * 判断图片图形
     * 默认正方形 Z：正方形 H：横长方形 S：竖长方形
     *
     * @param w 宽
     * @param h 高
     */
    public static String toPictureDirection(int w, int h) {
        String direction = "Z";
        if (w > h) direction = "H";
        if (h > w) direction = "S";
        return direction;
    }

    /**
     * 输出图片
     *
     * @param buffer 图片流
     * @param name   文件名称
     */
    public static void doTestWrite(BufferedImage buffer, String name) {
        try {
            System.out.println("输出图片宽度：" + buffer.getWidth());
            System.out.println("输出图片高度：" + buffer.getHeight());
            ImageIO.write(buffer, "png", new File(Commons.SAVE_PATH + name + ".png"));
        } catch (IOException e) {
            System.out.println("图片流信息输出图片出错");
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) {
        int width = 800;
        int height = 400;
        String text = "超大字200px";
        System.out.println(text);
        System.out.println(text.length());
        BufferedImage ima = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D sd = ima.createGraphics();
        Font f1 = new Font("微软雅黑", Font.PLAIN, 200);

        int ws = 0; // 当前行文本宽度
        StringBuilder cs = new StringBuilder(); // 文本盒子
        for (int i = 0; i < text.length(); i++) {
            char c = text.charAt(i);
            int w = sd.getFontMetrics(f1).stringWidth(String.valueOf(c));
            if ((ws + w) > width) {
                System.out.println("打印：" + cs.toString());
                ws = w;
                cs = new StringBuilder();
                cs.append(c);
            } else {
                ws = ws + w;
                cs.append(c);
                System.out.println("============");
            }
            if (i == text.length() - 1) {
                System.out.println("打印：" + cs.toString());
            }
        }
    }


}
